Free some missing fields in ::finalize()
authorFederico Mena Quintero <federico@novell.com>
Fri, 4 Sep 2009 18:42:46 +0000 (13:42 -0500)
committerBenjamin Otte <otte@gnome.org>
Thu, 15 Oct 2009 20:06:17 +0000 (22:06 +0200)
Signed-off-by: Federico Mena Quintero <federico@novell.com>
gtk/gtkfilesystemmodel.c

index 0e8345fa381f67240a692274f7ae4090d87e5195..97027d2c292f0a795692a3059b8052653168b91c 100644 (file)
@@ -978,11 +978,17 @@ gtk_file_system_model_finalize (GObject *object)
 
   for (i = 0; i < model->files->len; i++)
     {
+      int v;
+
       FileModelNode *node = get_node (model, i);
       if (node->file)
         g_object_unref (node->file);
       if (node->info)
         g_object_unref (node->info);
+
+      for (v = 0; v < model->column_types; v++)
+       if (G_VALUE_TYPE (node->values[v]) != G_TYPE_INVALID)
+         g_value_unset (&node->values[v]);
     }
   g_array_free (model->files, TRUE);
 
@@ -996,6 +1002,8 @@ gtk_file_system_model_finalize (GObject *object)
   if (model->filter)
     g_object_unref (model->filter);
 
+  g_slice_free1 (sizeof (GType) * n_columns, model->column_types);
+
   _gtk_tree_data_list_header_free (model->sort_list);
   if (model->default_sort_destroy)
     model->default_sort_destroy (model->default_sort_data);